package com.itheima.threadtest1;

/**
 * 窗口
 */
public class MyThread extends Thread{

    /**
     * 线程共享数据
     */

    static int count = 100 ;

    /**
     * 锁
     * 各个线程共享这个信号量
     */
    static Object lock = new Object();

    /**
     * 直接这样写会有些问题：
     * 重号和顺序不对或者会出现小于 1
     */
    public void run() {
        //先写死循环
        while(true) {
            //操作共享数据的代码要一气呵成
            synchronized (Thread.class) {       //用当前类的字节码文件对象
                //判断共享数据是否分配完毕
                if (count > 0 ) {
                    try {
                        //没有就执行核心逻辑
                        System.out.println(this.getName() + "正在抢票 ， 还剩：" + count -- + "张");
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                } else {
                    //抢完了就退出
                    break;
                }
            }
        }
    }
}
